草庐IT

lua - 多管齐下——Redis

全部标签

在 Java 中使用 redis 的消息队列服务

前言关于redis我们前面已经讨论过了缓存、分布式锁、分布式唯一标识、LBS服务的用法,这里我们来谈谈利用redis来实现一个消息服务。典型的消息服务是一个生产者和消费者模式的服务。一般是有生产者产生消息,将消息发送到队列中。而消息的消费者则监听消息,对消息进行处理。有很多非常优秀的消息队列服务的产品。例如RabbitMQ、RocketMQ、Kafka等。这些产品都具备非常高级的功能。可靠性、扩展性都非常的好。但是redis自身也能够很简单的实现消息队列的生产者和消费者模式。本文简单介绍一下在Java下是如何实现的。相关命令介绍参考redis官网redis和pubsub模式相关的命令如下。PU

java - Jetty Servlet 不运行——而是获取目录列表

我试图让一个在Netbeans中构建和运行的servlet在jetty服务器上运行。在本地部署始终有效,但是在Jetty上部署会导致目录列表而不是实际运行的servlet。问题似乎出在上下文配置上,但我不知道我做错了什么。这是war文件中web.xml的XML:RawQueryquerycore.SQLquery/query30index.jsp在Jetty端,我正在以这种方式部署上下文映射设置:/query/webapps/Link/I5Link.war非常适用的任何帮助。 最佳答案 我没有使用过jetty,但我会测试以下网址:h

Java 枚举——字段、抽象方法和类级别映射之间的选择

我编写了一个Java枚举,其中的值具有各种属性。这些属性可以通过以下任何一种方式存储:使用字段:enumEenum{V1(p1),V2(p2);privatefinalAattr;publicAattr(){returnattr;}privateEenum(Aattr){this.attr=attr;}}使用抽象方法:enumEenum{V1{publicAattr(){returnp1;}},V2{publicAattr(){returnp2;}}publicabstractAattr();}使用类级别map:enumEenum{V1,V2;publicAattr(){returna

java - JSF——替代 "rendered="?

我们正在开发一个Java网络应用程序,该应用程序将JSF(通过Seam的Richfaces)用于其UI。我读过几篇文章,指出在UI组件上使用“rendered=”属性会导致相当大的性能损失。我们有几个组件,我们希望根据是否设置它们的值来启用或禁用它们。例如,如果我们要展示待售商品,我们不会为未设置的属性设置一堆空白字段。然而,考虑到这种性能影响,我们对使用多个“渲染”字段感到担忧。有更好的替代方案吗?我们可以做些什么来提高使用该字段的性能? 最佳答案 如果getter除了返回一个(缓存的)boolean属性之外什么都不做,那么我真的

Java Validator 在失败时锁定文件——我做错了什么?

我正在尝试根据Java中的模式验证XML文件,问题是如果文件验证失败,则文件将被锁定,直到应用程序终止。如果输入文件有效,则文件不会被锁定,一切都很好。我正在使用javax.xml.validation.Validator和validate()方法。这看起来很简单,并且在验证通过时就可以了。我只能假设我在错误处理中遗漏了一些东西,但是Validator的API似乎没有提供任何有用的东西。谁能阐明我在这里做错了什么?我已将所有这些简化为下面的一个独立类。如果您运行它,那么在扫描程序启动时,检查输入文件,您可以看到它现在已被锁定。如果您需要,我可以提供输入和结构文件。谢谢,菲尔import

java - Java 中可靠的 UDP 协议(protocol)实现——为什么会这样?

我目前正在使用ReliableUDP协议(protocol)的Java实现,发现here.该项目完全没有教程,所以我发现很难发现问题。我已经设置了客户端和服务器。服务器在localhost:1234上运行,客户端在localhost:1235上运行。服务器首先建立,并循环监听连接-try{ReliableSocketclientSocket=server.socket.accept();InetSocketAddressclientAddress=(InetSocketAddress)clientSocket.getRemoteSocketAddress();Logger.getLog

java - Java JIT 是否确定性地编译字节码——在同一台机器上每次运行都进行相同的优化?

JavaJIT是否在同一台机器上每次运行时都使用相同的优化来编译字节码?它是否考虑了给定时刻的CPU使用率等动态因素,还是每次都会进行相同的优化而不考虑临时因素? 最佳答案 不,优化是不确定的。即使您运行完全相同的单线程、完全确定性程序,JIT用来确定要优化哪些方法的采样器也可以选择不同的集合。另一件可以改变生成的机器代码的事情是代码引用的某些常量的实际内存位置。JIT可以发出直接访问这些内存位置的机器指令,从而导致不同遍的机器代码之间存在额外差异。研究人员使用JikesRVM通过使用名为CompilerReplay的功能解决了他们

java - 第三方缓存软件——它们提供什么?

为什么要使用像ehcache或memcached这样开箱即用的缓存产品?一个简单的hashmap不行吗?我知道这是一个幼稚的问题,但我希望看到一些关于何时简单的HashMap就足够以及第三方缓存解决方案是否过大的答案。 最佳答案 Ehcache可以给你的一些东西,你必须用HashMap自己管理。驱逐政策。如果您的数据永远不会增长,则无需担心。但是如果你想防止内存泄漏最终破坏你的应用程序,那么你需要一个驱逐政策。使用ehcache,您可以配置缓存中元素的生存时间和空闲时间。使用Terracotta的集群缓存。如果您有多个用于故障转移/

java - 不能直接调用父类(super class)型构造函数——为什么不呢?

我有以下Java示例类:publicclassA{}publicclassSuper{protectedSuper(){}publicSuper(Aa){}}publicclassSubextendsSuper{}publicclassConsumer{publicConsumer(){Subsub=newSub(newA());//compilererror}}编译器错误指出参数不能应用于Sub中的默认构造函数,这是完全可以理解的。我很好奇的是这个决定背后的理由。Java在Sub中生成默认的空构造函数;为什么在这种情况下不能在幕后调用它?这主要是理智的手持情况,还是有技术原因?编辑我

【登陆harbor仓库报错——解决方法】Error response from daemon:Get... http: server gave HTTP response to HTTs client

大家好,我是好学的小师弟。今天和大家分享下我在部署harbor的过程中遇到的一些问题的解决方法。问题:通过服务器docker登录harbor,发现登陆报错;Errorresponsefromdaemon:Get“https:.//.../v2/"":http:servergaveHTTPresponsetoHTTsclient解决方法:1.在服务器中,cd到docker目录下cd/etc/docker2.看这个目录下有没有daemon.json这个文件,如果没有就手动创建touchdaemon.json,然后vimdaemon.jsontouchdaemon.jsonvimdaemon.jso